package org.example.Immutable;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.*;

public class SimpleDateFormatThreadUnsafe {
    public static void main(String[] args) throws ExecutionException,
            InterruptedException {
// 初始化时间日期 API
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
// 创建任务线程，执行任务将字符串转成指定格式日期
        Callable<Date> task = () -> sdf.parse("20200808");
// 创建线程池，数量为 10
        ExecutorService pool = Executors.newFixedThreadPool(10);
// 构建结果集
        List<Future<Date>> results = new ArrayList<>();
// 开始执行任务线程，将结果添加至结果集
        for (int i = 0; i < 10; i++) {
            results.add(pool.submit(task));
        }
// 打印结果集中的内容
// 在任务线程执行过程中并且访问结果集内容就会报错
        for (Future<Date> future : results) {
            System.out.println(future.get());
        }
// 关闭线程池
        pool.shutdown();
    }
}
